Вопросы, предлагающие языковой сервис

Я нашел два способа предложить языковой сервис в интернете.

Первый способ включает в себя использованиеIOleComponentManager и регистрация таймера для вызова моей службы во время простоя.

Второй способ включает в себя корпус моей службы в качествеIServiceContainer и добавлениеServiceCreatorCallback «предложить услугу по требованию».

Предположительно, второй способ теперь является «предпочтительным» способом ведения дел. К сожалению, когда я использую этот метод,OnSynchronizeDropdowns никогда не вызывается на мойTypeAndMembersDropdownBars реализация.

Кроме того, когда мойLanguageService находит ошибки в файле, он используетParseRequest.Sink.AddError() добавить ошибки в список ошибок. При предложении «По требованию» эти ошибки не отображаются в графическом интерфейсе, хотя я вижу, что они добавляются при отладке кода.

Я знаю, что моя языковая служба регистрируется, поскольку подсветка синтаксиса, «Перейти к определению» и «Найти все ссылки» по-прежнему работают.

Вот код, который я использую, чтобы «предложить свой сервис по требованию»:

IServiceContainer serviceContainer = this as IServiceContainer;
ServiceCreatorCallback callback = new ServiceCreatorCallback(CreateLanguageService);
serviceContainer.AddService(typeof(MyLanguageService), callback, true);

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

Ответы на вопрос(1)

Ваш ответ на вопрос