Откуда Visual Studio получает данные IntelliSense и завершение пространства имен

StackOverflow https://stackoverflow.com/questions/1093802

Вопрос

Признаюсь... Я задаю этот вопрос, потому что у меня до сих пор нет ответа на него. мой другой вопрос и подумал, что прибегну к другому такту.

Может кто-нибудь объяснить мне, ГДЕ работают значения для intellisense и завершения пространства имен/класса/члена.Я подумал, что если я смогу углубиться в то, где и как он получает эти данные, я смогу попытаться переконфигурировать свой проект, чтобы он правильно разрешал мои пространства имен.

Сет

Это было полезно?

Решение

Пространство имен и информация Intellisense для CLR поступают из базы данных, скрытой внутри установки VS.

Информация о рабочем проекте сканируется и архивируется (думаю, в файл) при открытии проекта.Затем он периодически обновляет его по мере вашей работы.

Если вы хотите точный путь, я сомневаюсь, что Microsoft публикует эту информацию.

Посмотрев на ваш другой вопрос, я хотел добавить, что возможно (каким-то образом) заставить Visual Studio перестроить информацию индекса для данного проекта.От меня ускользает, как это сделать прямо сейчас.Вы пробовали это и получили ли вы те же результаты?

Обновление в отношении комментариев:

Обновление кэша легко, но не обязательно очевидно.Есть два способа обновить кеш:1) Перейти к редактированию -> Intellisense -> Обновить локальный кэш и 2) Нажмите Ctrl+Shift+R

Источник: Блог Дэна — Обновление кэша IntelliSense

Другие советы

Я не знаю, как это делается в Visual Studio, но вот общий подход:

Соберите все публичные члены и методы.В случае управляемых библиотек, подобных созданным VB.NET, это делается путем отражения.Документация взята из XML-файлов, связанных с этими библиотеками.Это подход для ссылочных библиотек.Для проекта, над которым вы сейчас работаете, он просто постоянно парсит исходные файлы, где документация объединена с кодом.

То, как выполняется разрешение пространства имен, зависит от языка, но ответ на этот вопрос вы найдете в другом вопросе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top