Перейти к содержимому

Что такое intellisense в visual studio

  • автор:

Возможности IntelliSense для Visual C++

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. Технология IntelliSense для C++ доступна для автономных файлов, а также для файлов, являющихся частью проекта C++. В кроссплатформенных проектах некоторые возможности IntelliSense доступны в файлах .cpp и .c в проекте с общим кодом даже в том случае, если вы находитесь в контексте Android или iOS.

В этой статье представлены общие сведения о функциях IntelliSense в C++. Сведения о том, как настроить проект для IntelliSense, а также устранять проблемы, см. в статье Настройка проекта C++ для IntelliSense.

Возможности IntelliSense в C++

IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор>C/C++>Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.

Tool Options dialog box

Для доступа к IntelliSense можно использовать пункты меню и сочетания клавиш, показанные на следующем изображении.

IntelliSense menu

Завершение операторов и список элементов

Когда вы набираете на клавиатуре ключевое слово, тип, функцию, имя переменной или другие программные элементы, распознаваемые компилятором, редактор подставляет полное слово.

Visual C++ Complete Word window

При первом вызове списка элементов отображаются только те элементы, которые доступны для текущего контекста. Если нажать сочетание клавиш CTRL+J, вы увидите полный список элементов, независимо от их доступности. Если данный список вызвать третий раз, будет показан еще более широкой список программных элементов. Список элементов можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие>Автоматически отображать список членов.

Visual C++ Member List

Справка по параметрам

При наборе на клавиатуре открывающей фигурной скобки для вызова функции или угловой скобки в объявлении переменной шаблона класса редактор отображает небольшое окно с типами параметров для каждого события перегрузки функции или конструктора. Параметр current (на основе расположения курсора) имеет полужирный шрифт. Сведения о параметрах можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие>Сведения о параметрах.

Visual C++ Parameter Help

Краткие сведения

При наведении курсора мыши на переменную появляется небольшое окно, где отображаются сведения о типе и заголовок, в котором определяется тип. Чтобы увидеть сигнатуру функции, наведите указатель мыши на вызов функции. Краткие сведения можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Расширенные>Auto Quick Info (Автоматически предоставляемые краткие сведения).

Visual C++ QuickInfo

Выделение ошибок

Волнистые линии под программным элементом (переменной, ключевым словом, фигурной скобкой, именем типа и т. д.) указывают на фактическую или возможную ошибку в коде. Зеленая волнистая линия появляется при написании опережающего объявления и напоминает о том, что необходимо написать реализацию. Фиолетовая волнистая линия появляется в общем проекте при наличии ошибки в коде, который не является активным, например, когда вы работаете в контексте Windows, но вводите что-то, что будет ошибкой в контексте Android. Красная волнистая линия указывает на ошибку компилятора или предупреждение в активном коде, с которыми необходимо разобраться.

Visual C++ error squiggles

Выделение кода цветом и шрифты

Используемые по умолчанию цвета и шрифты можно изменить в диалоговом окне Параметры, выбрав Среда>Шрифты и цвета. Здесь можно изменять шрифты не только для редактора, но и для различных окон пользовательского интерфейса. Параметры, относящиеся к C++, начинаются с «C++». Другие параметры относятся ко всем языкам.

Кроссплатформенная технология IntelliSense

В проекте с общим кодом некоторые возможности IntelliSense, например волнистые линии, доступны даже в том случае, если вы работаете в контексте Android. При написании кода, который приводит к ошибке в неактивном проекте, IntelliSense будет по-прежнему отображать волнистые линии, но они будут иметь другой цвет, чем волнистые линии для ошибок в текущем контексте.

Рассмотрим приложение OpenGLES, настроенное для сборки для Android и iOS. На иллюстрации показан редактируемый общий код. На этом изображении активным проектом является iOS.StaticLibrary:

iOS is selected as the active project.

Обратите внимание на следующее.

  • Ветвь #ifdef в строке 6 неактивна, что означает неактивный регион, так как __ANDROID__ не определен для проекта iOS.
  • Переменная приветствия в строке 11 инициализируется с идентификатором HELLO , теперь подчеркнутым красной волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в активном на данный момент проекте iOS.
  • Идентификатор BYE в строке 12 подчеркнут фиолетовой волнистой линией. Этот идентификатор не определен в неактивном на данный момент проекте Android.NativeActivity. Несмотря на то, что эта строка компилируется, когда iOS является активным проектом, она не будет компилироваться, когда Android является активным проектом. Так как это общий код, его следует исправить, даже если он компилируется в активной конфигурации.

Если вы измените активный проект на Android, волнистые линии изменятся:

  • Ветвь #else в строке 8 неактивна, что означает неактивный регион, так как __ANDROID__ определяется для проекта Android.
  • Переменная приветствия в строке 11 инициализируется с идентификатором HELLO , подчеркнутым фиолетовой волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в неактивном на данный момент проекте iOS.
  • Идентификатор BYE в строке 12 подчеркнут красной волнистой линией. Этот идентификатор не определен в активном проекте.

IntelliSense для автономных файлов

При открытии одного файла за пределами любого проекта функции IntelliSense по-прежнему остаются доступными. Отдельные возможности IntelliSense можно включить и (или) отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие. Чтобы настроить IntelliSense для отдельных файлов, которые не входят в проект, найдите раздел IntelliSense и обозреватель для файлов, не входящих в проект.

Visual C++ single file intellisense

По умолчанию в IntelliSense с одним файлом используются только стандартные каталоги включения для поиска файлов заголовка. Чтобы добавить дополнительные каталоги, откройте контекстное меню в узле Решение и добавьте каталог в список Исходный код отладки, как показано на следующей иллюстрации:

Adding a path to a header file.

Включение и отключение функций

У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор>C/C++>Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.

Tool Options dialog box

См. также

  • Using IntelliSense
  • Настройка проекта C++ для IntelliSense

Настройки системы IntelliSense в Visual Studio

Система Visual Studio устанавливает много настроек средств IntelliSense по умолчанию, но многие из них можно изменить с помощью диалогового окна Options, если их значения, заданные по умолчанию, не устраивают разработчика. Некоторые из этих настроек связаны только с определенным языком программирования.

Общие настройки

Сначала рассмотрим настройки из группы Keyboard в разделе Environment. Каждой команде, доступной в системе Visual Studio, соответствует вполне определенная запись в списке комбинаций клавиш (на рисунке ниже показано диалоговое окно Options, которое открывается по команде Tools —> Options):

Настройки комбинаций клавиш для IntelliSense

Комбинации клавиш, заданные по умолчанию, можно заменить или добавить новые. Комбинации клавиш для команд системы IntelliSense приведены в таблице ниже:

Выводит на экран информацию команды Quick Info о выбранном элементе

Пытается дополнить слово, если существует однозначное соответствие, или выводит список, если есть несколько совпадений

Переключает систему IntelliSense из режима подсказки в режим дополнения

Выводит на экран информацию о списке параметров вызываемой функции

Открывает диалоговое окно Code Snippet, в котором можно выбрать фрагмент кода, чтобы вставить его автоматически (создание и использование сниппетов мы рассмотрим позже)

Генерирует полную заглушку метода по шаблону

Генерирует определения абстрактного класса из заглушки

Генерирует явную реализацию интерфейса для определения класса

Генерирует неявную реализацию интерфейса для определения класса

Используя способы, описанные в статье «Горячие клавиши в Visual Studio», можно добавить новые комбинации клавиш или изменить существующие для любой команды.

Дополнение инструкции

Работой системы IntelliSense можно управлять либо в глобальном масштабе, как показано на рисунке ниже, либо для каждого языка программирования в отдельности. Для того чтобы определить способ вывода списка членов классов или вообще отменить его вывод, на закладке General в группе All Languages диалогового окна Options можно изменить настройки Statement Completion:

Настройки Statement Completion для IntelliSense

Настройки для языка C#

Кроме общих настроек интегрированной среды разработки и языков программирования для системы IntelliSense, некоторые языки, например C#, имеют дополнительную закладку для определения собственных настроек. С помощью закладки настроек для языка C#, показанной на рисунке ниже, можно также задать способ вызова и использования средств технологии IntelliSense.

Настройки IntelliSense для C#

Во-первых, можно отключить список дополнений, чтобы они не появлялись автоматически. Некоторые разработчики предпочитают делать именно так, потому что списки членов классов мешают им набирать тексты своих программ. Если список дополнений выводится не автоматически, а только по вызову, то пользователь может сам решить, что включать в эти списки, помимо стандартных записей, включая ключевые слова и фрагменты кода.

Для того чтобы выбрать запись в списке членов классов, можно использовать любой из символов, доступных в разделе Selection In Completion List, или нажать клавишу пробела. В заключение, как указывалось ранее, система Visual Studio автоматически выделит тот член класса в списке, который использовался последним. В языке C# можно либо отключить это свойство, либо очистить историю.

Дополнительные возможности системы IntelliSense

Кроме основных аспектов технологии IntelliSense, в системе Visual Studio 2013 реализованы также дополнительные функциональные возможности интегрированной среды разработки, которые тоже относятся к этой технологии. Эти свойства подробно обсуждаются позже, а в этой статье приводится лишь их краткое описание.

Сниппеты

Сниппеты (code snippets) — это фрагменты кода, которые можно автоматически генерировать и вставлять в свой собственный код вместе с соответствующими ссылками и директивами using, помечая переменные фразы, чтобы облегчить их замену. Для того чтобы открыть диалоговое окно Code Snippets, следует нажать клавиши , .

В поисках требуемого сниппета можно перемещаться по иерархии каталогов сниппетов. Если разработчик знает комбинацию клавиш, установленную для конкретного сниппета, он может просто нажать ее и клавишу , и система Visual Studio вставит сниппет, не открывая диалоговое окно. Мощь сниппетов будет продемонстрирована в одной из следующих статей.

Использование сниппетов с помощью IntelliSense

Комментарии XML

Комментарии XML используются как способ автоматического документирования проектов и решений. Еще одним преимуществом использования XML-комментариев в своем коде является то, что система Visual Studio может использовать их в своей системе IntelliSense для вывода подсказок и более полной информации о параметрах, помимо простой информации о типах, как это делается в обычных пользовательских классах. Мы приведем примеры использования комментариев XML в одной из следующих статей.

Добавление собственных схем IntelliSense

Пользователь может добавить собственные схемы IntelliSense, которые бывают полезными для редактирования XML- и HTML-файлов. Для этого следует создать правильно отформатированный XML-файл и инсталлировать его в подкаталог Common7\Packages\schemas\xml каталога инсталляции системы Visual Studio (по умолчанию C:\Program Files\Microsoft Visual Studio ). Например, можно расширить возможности технологии IntelliSense для XML-редактора, включив свою собственную схему определений. Описание процесса создания таких схем, выходит за рамки нашего руководства, но о нем можно прочитать в статье «Функции IntelliSense редактора XML».

Итак, в этой и предыдущих статьях мы рассмотрели систему IntelliSense. Функциональные возможности технологии IntelliSense выходят за пределы основного окна редактирования кода. Мощь технологии IntelliSense, проявляющаяся в автоматическом дополнении инструкций и параметров, можно использовать во многих других инструментальных окнах, например Command и Immediate. Любые ключевые слова и даже переменные и объекты, известные в текущем контексте на протяжении сессии отладки, могут быть найдены с помощью списка членов классов IntelliSense. Технология IntelliSense во всех ее проявлениях значительно повышает эффективность работы системы Visual Studio по сравнению с большинством других доступных инструментов. Постоянно отслеживания нажатия клавиш, чтобы обеспечить обратную визуальную связь или автоматическое дополнение и генерацию кода, система IntelliSense позволяет разработчикам исключительно быстро, эффективно и правильно набирать программы с первой попытки.

C# IntelliSense

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

Возможности C# IntelliSense доступны при написании кода в редакторе и его отладке в командном окне Режим интерпретации.

Списки завершения

Списки завершения IntelliSense в C# содержат маркеры из операций составления списков членов, завершения слов и других. Они обеспечивают быстрый доступ к следующим элементам:

  • члены типа или пространства имен;
  • имена переменных, команд и функций;
  • Фрагменты кода
  • Ключевые слова языка
  • Методы расширения

Список завершения в C# обладает достаточно широкими возможностями по фильтрации несоответствующих токенов и предварительному выбору токена в зависимости от контекста. Дополнительные сведения см. в разделе Фильтрованные списки завершения.

Фрагменты кода в списках завершения

В C# списки завершения содержат фрагменты кода, позволяющие легко вставлять предварительно определенные тела кода в программу. Фрагменты кода отображаются в списке завершения в виде текста ярлыка фрагмента. Дополнительные сведения о фрагментах кода, доступных в C# по умолчанию, см. в описании фрагментов кода C#.

Ключевые слова языка в списках завершения

Список завершения в C# также содержит ключевые слова языка. Дополнительные сведения о ключевых словах языка C# см. в разделе Ключевые слова C#.

Методы расширения в списках завершения

Список завершения в C# содержит методы расширения, которые находятся в области действия.

В списке завершения отображаются не все методы расширения для объектов String.

В методах расширения используется не такой значок, как в методах экземпляра. Если метод экземпляра и метод расширения с одинаковыми именами находятся в одной области, в списке завершения отображается значок метода расширения.

Фильтрованные списки завершения

IntelliSense удаляет ненужные элементы из списка завершения с помощью фильтров. C# фильтрует списки завершения по следующим элементам:

  • Интерфейсы и базовые классы. IntelliSense автоматически удаляет элементы из списков завершения интерфейсов и базовых классов как в базе объявлений классов, так и в списках интерфейсов и ограничений. Например, перечисления не отображаются в списке завершения для базовых классов, поскольку перечисления не могут использоваться для базовых классов. Список завершения для базовых классов содержит только интерфейсы и пространства имен. Если выбрать элемент в списке и ввести запятую, IntelliSense удалит базовые классы из списка завершения, так как C# не поддерживает множественное наследование. Аналогичная логика используется и для предложений ограничения.
  • Атрибуты. При применении атрибута к типу список завершения фильтруется таким образом, что в нем остаются только типы, которые получены из пространств имен, содержащих эти типы, например Attribute.
  • Предложения CATCH.
  • Инициализаторы объектов. В списке завершения будут отображаться только те элементы, которые могут быть инициализированы.
  • Ключевое слово new. При вводе new и нажатии клавиши ПРОБЕЛ появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы для объявлений и операторов возврата в методах.
  • Ключевое слово enum. При нажатии клавиши ПРОБЕЛ после ввода знака равенства для назначения перечисления появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы после ввода ключевого слова «return» и при объявлении.
  • Операторы AS и IS. Фильтрованный список завершения отображается автоматически при нажатии клавиши ПРОБЕЛ после ввода ключевого слова as или is .
  • События. При вводе ключевого слова event список завершения содержит только типы делегатов.
  • Справочная система по параметрам автоматически сортируется по первой перегрузке метода, соответствующей параметрам, по мере их ввода. Если существует несколько перегрузок метода, можно использовать кнопки со стрелками вверх и вниз для перехода к следующей возможной перегрузке в списке.

Недавно использовавшиеся члены

IntelliSense запоминает последние элементы, выбранные во всплывающем окне Список членов для автоматического завершения имени объекта. Когда вы откроете список членов в следующий раз, сверху будут отображаться элементы, которые недавно использовались. Журнал наиболее часто используемых членов списка очищается после завершения каждого сеанса Visual Studio.

override

Если ввести override, а затем нажать клавишу ПРОБЕЛ, IntelliSense покажет во всплывающем списке все допустимые элементы базового класса, которые можно переопределить. Если после приглашения override ввести тип возвращаемого значения метода, IntelliSense отобразит только методы, возвращающие этот тип. Если IntelliSense не сможет найти совпадения, будут показаны все члены базового класса.

IntelliSense с возможностями искусственного интеллекта

Расширение Visual Studio IntelliCode предоставляет списки завершения IntelliSense с использованием искусственного интеллекта. IntelliCode предсказывает, какой API будет наиболее подходящим, а не просто возвращает список членов в алфавитном порядке. Оно формирует список динамически на основе текущего контекста вашего кода.

Автоматическое генерирование кода

Добавить директиву using

Операция IntelliSense Добавить директиву using автоматически добавляет требуемую директиву using в файл кода. Это позволяет сосредоточить внимание на коде, который вы пишете, и не отвлекаться на другую часть кода.

Чтобы инициировать операцию Добавить директиву using, поместите курсор на ссылку на тип, которую не удается разрешить. Например, при создании консольного приложения и добавлении XmlReader в тело метода Main в соответствующей строке появляется подчеркивание красной волнистой линией, так как ссылку на тип не удается разрешить. После этого можно вызвать операцию Добавить директиву using, выбрав быстрое действие. Быстрые действия отображаются, только если курсор находится в несвязанном типе.

Add using, quick action expanded image

Щелкните значок лампочки с ошибкой и выберите пункт using System.Xml;, чтобы автоматически добавить директиву using.

Добавлять отсутствующие директивы using при вставке

IntelliSense может автоматически добавлять недостающие директивы using в код при вставке типа в файл кода. Эта функция экономит время, автоматизируя задачу добавления недостающих директив using при вставке типа в файл. Включите эту функцию в текстовом редакторе>параметров>инструментов>C# (или Visual Basic) >Дополнительно и выберите «Добавить отсутствующие» директивы для вставки.

Удаление и сортировка директив using

Параметр Удалить и сортировать директивы using позволяет сортировать и удалять объявления using и extern , не меняя поведение исходного кода. Со временем исходные файлы могут стать перегруженными, и их станет трудно читать по причине ненужных и неорганизованных директив using . Параметр Удалить и сортировать директивы using сжимает исходный код, удаляя неиспользуемые директивы using и улучшая читаемость путем их сортировки. В меню Правка выберите IntelliSense, а затем Упорядочить директивы Using.

Реализация интерфейса

Технология IntelliSense может облегчить реализацию интерфейса при работе в редакторе кода. Обычно для правильной реализации интерфейса нужно создать объявление метода для каждого члена интерфейса в классе. При использовании IntelliSense после ввода имени интерфейса в объявлении класса появляется значок быстрых действий в виде лампочки. Он позволяет выбрать вариант автоматической реализации интерфейса с помощью явного или неявного именования. При явном именовании объявления метода содержат имя интерфейса. В случае неявного именования объявления метода не указывают, к какому интерфейсу они принадлежат. Доступ к явно именованному методу интерфейса может осуществляться только через экземпляр интерфейса, а не через экземпляр класса. Дополнительные сведения см. в разделе Явная реализация интерфейса.

Реализация интерфейса создает минимально необходимый для работы интерфейса набор заглушек методов. Если базовый класс уже реализует часть интерфейса, заглушки не восстанавливаются.

Реализация абстрактного базового класса

IntelliSense предоставляет возможность автоматической реализации членов абстрактного базового класса при работе в редакторе кода. В обычном режиме для реализации членов абстрактного базового класса для каждого метода абстрактного базового класса в производном классе необходимо создать новое определение метода. При использовании IntelliSense после ввода имени абстрактного базового класса в объявлении класса появляется значок быстрых действий в виде лампочки. Он дает возможность автоматической реализации методов базового класса.

Заглушки метода, создаваемые функцией Реализовать абстрактный базовый класс, моделируются фрагментом кода, определенным в файле MethodStub.snippet. Фрагменты кода можно изменять. Подробнее см. в разделе Пошаговое руководство. Создание фрагмента кода.

Создание в результате использования

Возможность Создание в результате использования позволяет использовать классы и элементы до того, как они будут определены. Для любого класса, конструктора, метода, свойства, поля или перечисления, которое вы хотите использовать, но еще не определили, можно создать заглушку. Новые типы и члены можно создавать, не покидая текущего расположения в коде. Это сводит до минимума нарушения в рабочем процессе.

Каждый неопределенный идентификатор подчеркивается красной волнистой линией. При перемещении указателя мыши на такой идентификатор в подсказке появляется сообщение об ошибке. Для отображения нужных параметров можно выполнить одну из следующих процедур:

  • Щелкните неопределенный идентификатор. Под идентификатором появляется значок быстрых действий в виде лампочки с ошибкой. Щелкните лампочку с ошибкой.
  • Щелкните неопределенный идентификатор и нажмите клавиши CTRL+ (CTRL+PERIOD).
  • Щелкните неопределенный идентификатор правой кнопкой мыши и выберите пункт Быстрые действия и рефакторинг.

В число появившихся параметров могут входить следующие:

  • Сформировать свойство
  • Сформировать поле
  • Сформировать метод
  • Сформировать класс
  • Сформировать новый тип (для класса, структуры, интерфейса или перечисления)

Сформировать обработчики событий

В редакторе кода IntelliSense упрощает подключение методов (обработчиков событий) к полям событий.

Если ввести оператор += после поля события в файле CS, IntelliSense предложит нажать клавишу TAB. В результате будет вставлен новый экземпляр делегата, который указывает на метод, обрабатывающий событие.

При нажатии клавиши TAB IntelliSense автоматически завершает оператор и отображает ссылку на обработчик событий в виде выделенного текста в редакторе кода. Для завершения автоматического подключения события IntelliSense предлагает снова нажать клавишу TAB или создать пустую заглушку для обработчика событий.

Если новый делегат, созданный IntelliSense, ссылается на существующий обработчик событий, IntelliSense выводит эти сведения во всплывающей подсказке. Эту ссылку можно изменить — соответствующий текст уже выделен в редакторе кода. В противном случае автоматическое подключение события завершается на этом этапе.

При нажатии клавиши TAB IntelliSense заглушает метод с корректной сигнатурой и размещает указатель в теле обработчика событий.

Для возврата к оператору привязки к событию используйте команду Назад в меню Вид (CTRL+).

См. также

  • Использование IntelliSense
  • Интегрированная среда разработки Visual Studio

Intellisense with Visual Studio Code

Visual Studio Code provides excellent intellisense for JavaScript, TypeScript, and C#. Whether you are running ASP.NET 5 or node or client side code, you’ll see a new level of intellisense here.

You can also hit CTRL+SPACE and get intellisense.

If you hover over a variable VSCode shows the signature of a function or the type of a variable, if it can be determined.

hover

Visual Studio Code Series

Follow this series to learn more about what you can do with Visual Studio Code!

  1. Introducing Visual Studio Code
  2. Getting Started with Visual Studio Code
  3. Intellisense
  4. Refactoring
  5. Debugging
  6. Git Integration and Preferences

JavaScript Intellisense

Out of the box we get basic intellisense for what the editor can determine on its own about the JavaScript code. VSCode will tell you a function’s signature or what variables are available in scope.

js-hint1

When working in node.js VSCode provides intellisense across all of your JavaScript modules (the ones you write).

Quick Fix

Now let’s assume you want intellisense for the JavaScript libraries or node modules you use on the client or server. Perhaps you are using Angular and you want intellisense on it. Notice the green squiggly line under angular ? Put your cursor on it then click the light bulb ( or CMD+. ) and choose Add /// reference to angularjs/angular.d.ts .

js-hint2

VSCode will go and get the typings definition file for Angular and add it to your project, reference it in the file and you instantly have intellisense for Angular! (VSCode grabs the typings files from the Definately Typed repository.)

js-hint3

We can now repeat this by adding jQuery code to a file. Put the cursor on the $ , click CMD+. , and pull down the typings file. Now we have jQuery intellisense, too.

Consolidating into a tsd.d.ts

Do you see the 2 /// references and how the can accumulate? You can make a single tsd.d.ts with the npm package named tsd .

npm install tsd -g # cd to your project folder tsd query -r -o -a install angular jquery 

This produces a tsd.d.ts file which you can reference in your JavaScript files to get intellisense. Now you have 1 place to put all of you typings for JavaScript projects.

I think the story for this will get even better too, since VSCode uses TypeScript under the covers for its tooling.

Additional Hints

If you try to create a type in a JavaScript file, VSCode will warn you that it is not valid.

js-hint4

TypeScript Intellisense

The intellisense and editor experience is top notch when using TypeScript. VSCode provides intellisense across multiple files because TypeScript understands the import statement.

VSCode provides intellisense for third party libraries, if you include the typings *.d.ts files. This works the same as it does with JavaScript files. You can use the Quick Fix feature to add a typing automatically.

JSON Intellisense

Intellisense works in well known JSON files too, including package.json and bower.json . It uses schema information and looks up values to find likely matches, where possible.

Here you can see it finding all npm packages that match gulp .

jsonintellisense1.png

Here you can see it finding the most appropriate versions and showing a message about what the versions mean.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *