AppCode PSI 插件开发 - 查找参考协议属性

问题描述

一个协议

protocol MyTest {
   var isCorrect: Bool { get }
}

还有一个实现协议的类

class Super: MyTest {
  var isCorrect: Bool = false
}

如何在 PSI 模式下找到 isCorrect 属性的声明? 我在分析 SwiftvariableDeclaration 类时确实有对 Super 的引用,但我想获得对 isCorrectMyTest 的实际声明的引用协议。

我已经尝试过 SwiftvariableDeclaration.swiftSymbol,但我不确定如何获得对声明的引用。

感谢有关如何解决它的任何提示

解决方法

您已经拥有该属性的声明。 您正在寻找的是其祖先的声明。

SwiftHierarchySearch.getAllSuperProperties(variable)

(注意一个变量声明可以包含多个变量,所以你需要选择一个。)