Вопросы и ответы по Visual Studio IntelliCode

В этом разделе приводятся ответы на часто задаваемые вопросы о Visual Studio IntelliCode.

Есть ли различия между IntelliCode для Visual Studio и Visual Studio Code?

По сравнению с расширением для Visual Studio Code IntelliCode для Visual Studio предлагает некоторые дополнительные возможности, в том числе автоматическое создание файлов EditorConfig и адаптацию IntelliSense к вашему коду. Дополнительные сведения см. в статьях IntelliCode для Visual Studio и Расширение IntelliCode для Visual Studio Code.

Чем "IntelliSense с возможностями искусственного интеллекта" лучше обычного IntelliSense?

При использовании IntelliCode в списке завершения предлагается API, который, скорее всего, понадобится разработчику, вместо того чтобы просто предоставлять их список в алфавитном порядке. При формировании динамического списка IntelliCode учитывает текущий контекст кода разработчика, а также применяет шаблоны, полученные в результате анализа нескольких тысяч крупных высокорейтинговых проектов с открытым исходным кодом на портале GitHub. В результате формируется модель, которая предсказывает наиболее вероятный и наиболее подходящий вызов API.

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

Насколько хорошо работают рекомендации завершения IntelliCode?

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

Почему для моей избранной библиотеки не отображаются рекомендации?

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

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

Как отключить помеченные звездочками рекомендации?

Чтобы отключить помеченные звездочками рекомендации IntelliSense, необходимо отключить само расширение:

  • В Visual Studio выберите Расширения>Управление расширениями, выберите расширение IntelliCode и щелкните Отключить.

  • В Visual Studio Code выберите Расширения, выберите расширение IntelliCode и щелкните Отключить.

IntelliCode не может найти git.exe, чтобы получить модель для завершений для команд.

Действие GitHub для завершений для команд IntelliCode и задача сборки Azure DevOps имеют зависимость от системы управления версиями Git, которая позволяет получать и использовать присоединенные к репозиторию модели для завершений для команд. Перейдите по ссылке https://git-scm.com/downloads, чтобы установить Git, если вы хотите использовать присоединенные к репозиторию модели для завершений для команд.

Ошибка при обучении модели для завершений для команд в задаче Azure DevOps

Задача Azure DevOps по обучению модели команд Visual Studio IntelliCode активируется только при запуске сборки или выпуска по одной из следующих причин: Manual, IndividualCI, BatchedCI, Schedule, Scheduled и ContinuousIntegration. Дополнительные сведения о причинах активации конвейера сборки и выпуска см. в следующих источниках:

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

Ошибка при обучении модели для завершений для команд из-за владения моделью

Обучать и повторно обучать модели команд может только их владелец. Владелец также может удалить модель из служб IntelliCode, см. раздел Удаление модели.

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

Ошибка при обучении модели для завершений для команд из-за регулирования

Модели команд можно обучать только один раз в минуту для каждого репозитория. Как правило, этого достаточно для того, чтобы обеспечить актуальность модели команд для завершений за счет использования в ней последней версии кода. Если вы обнаружите, что ваша модель по-прежнему устаревает при такой периодичности обучения, сообщите нам об этом, открыв вопрос в https://aka.ms/vsicissues.

Ошибка при использовании или обучении модели из-за неизвестной фиксации

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

Если вам не удается повторно обучить модель из-за изменений в журнале Git, попробуйте удалить ее, а затем провести еще одно обучение модели команд. См. раздел Удаление модели.

Предоставляется ли бесплатно?

Основные возможности IntelliCode всегда будут предлагаться на бесплатной основе. Тем не менее корпорация Майкрософт в будущем может начать взимать плату за некоторые возможности IntelliCode.

Какие изменения в IntelliCode могут быть реализованы в будущем?

Чтобы получать сведения о будущих возможностях, подпишитесь на рассылку новостей и обновлений, относящихся к Visual Studio IntelliCode.