Вопрос

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

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

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

С уважением, Колин

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

Решение

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

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

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

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

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