2015-12-08 2 views
0

Мы разрабатываем приложение Visual Studio Addin, которое должно позволить пользователям перейти к позициям кода в новой созданной функции (конечно, используя CodeAnalysis). На самом деле мы можем перейти только к символам, используя VisualStudioWorkspace.TryGoToDefinition. Основополагающий интерфейс IDocumentNavigationService будет очень полезен, поскольку он предоставляет такие методы, как TryNavigateToSpan или TryNavigateToPosition, но интерфейс является внутренним и поэтому мы не можем получить экземпляр навигационной службы.Использование IDocumentNavigationService в собственном расширении

Есть ли какая-то другая услуга, которая нам поможет? Или кто-нибудь знает, есть ли планы сделать общий интерфейс IDocumentNavigationService?

ответ

1

Если вы хотите, чтобы мы сделали это общедоступным, просто напишите ошибку на GitHub. В то же время, адаптация от this answer, вероятно, правильная вещь, хотя в вашем случае вы можете получить интерфейс DTE2, выполнив (DTE2)GetService(typeof(SDTE)) из своего пакета. Есть и другие подходы, упомянутые here.

+0

Да, конечно, это один из способов. В настоящий момент я выбираю другой способ: я создал собственный WorkspaceService, который взаимодействует с IDocumentNavigationService, используя отражение. – Chris

+0

У вас есть хотя бы ошибка на GitHub? –

+0

Да Я добавил проблему в [GitHub] (https://github.com/dotnet/roslyn/issues/7328). Я не устанавливал метки/теги, потому что не знал, если я это сделаю или если кто-то из вас сделает это. – Chris

Смежные вопросы