Как найти ссылки Разработка плагина PsiElement AppCode - PullRequest
0 голосов
/ 04 декабря 2018

Как мы можем найти все ссылки на существующий PsiElement.В частности, SwiftFunctionDeclaration.Я пробовал с

ReferencesSearch.search(functionDeclaration, ProjectScope.getProjectScope(functionDeclaration.getProject())).findAll();

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

Пример:

protocol Test {
func calculate()
}

class TestingClass : Test {
func calculate() {
 }
}

Так что, если я использую что-то подобное, let s = TestingClass(), s.calculate() обнаружит, что метод calculate имеет ссылки.Но если я смягчу ссылку let s: Test = TestingClass(), s.calculate(), она скажет мне, что метод calculate внутри TestClass не имеет никаких ссылок.

Вопрос: есть ли API, который даст мнессылки, даже если используются через протокол.Если нет, то можно ли найти, если SwiftFunctionDeclaration является методом реализации конкретного протокола?

...