Получение IVsTextLines из пути к файлу - PullRequest
0 голосов
/ 13 января 2011

Я написал базовое расширение LanguageService для Visual Studio 2008 для собственного скриптового языка моей студии. Он прекрасно работает, и я реализовал базовую таблицу символов для отслеживания определений сценариев и вызовов, позволяющих использовать функции определения goto.

Проблема, с которой я столкнулся, состоит в том, что я знаю только, как анализировать текущее активное представление, и я хотел бы просканировать все содержимое решения, чтобы пользователь мог перейти к определению сценария, определенного в файле, который он еще не открыли и не разобрали. Я выяснил, как создать список всех файлов в решении, но теперь мне нужно создать новый Microsoft.VisualStudio.Package. Source , для которого требуется Microsoft.VisualStudio.TextManager.Interop. IVsTextLines и я понятия не имею, как создать новый файл на основе имеющегося у меня файла.

Может быть, я неправильно понимаю проблему, и кто-то может указать мне на лучший способ заставить файл анализироваться LanguageService.

С уважением, Colin

1 Ответ

0 голосов
/ 16 февраля 2011

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

Я пришелк выводу, что закрытые файлы не нуждаются в IVsTextLines или не должны быть включены во внутренний список исходных файлов VS, потому что я не выполняю никаких операций непосредственно над ними, все, что меня волнует в этом случае, - это создать таблицу символови соответствующий им TextSpan.Поэтому вместо этого я создал новый API для моего парсера, который просто взял строку и построил мой AST вместо того, чтобы извлекать текст из ParseRequest, и беспокоился только о конкретных типах символов, которые мне нужно было записать.Затем я запихнул это в BackgroundWorker.

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

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

...