Автоматическое завершение кода в современных IDE работает на основе различных алгоритмов. 2
В простых реализациях используется введённый пользователем префикс, и предлагается список доступных сущностей языка (названия функций, классов, переменных и т. д.). 2 Это предотвращает синтаксические ошибки и избавляет разработчиков от необходимости постоянно обращаться к документации за счёт подсказок. 2
Более продвинутые методы основаны на статистических подходах, включающих подсчёт использования каждой языковой сущности и последующую сортировку ответов в соответствии с их частотой. 2 Также существуют алгоритмы, которые вместо префикса используют различные варианты сокращений, например, аббревиатуры. 2
В IntelliCode для автоматического завершения кода используется крупномасштабная модель трансформера, обученная на около полумиллиона общедоступных репозиториев с открытым исходным кодом из GitHub. 4 Эта модель делает прогнозы о том, что пользователь вводит далее, на основе знаний о том, что он закодировал до сих пор, включая имена и позиции переменных, используемые библиотеки, функции в соседнем коде и список IntelliSense. 4