如何解决ElementColorProvider-确定PSIElement或引用的类
我正在基于现有的自定义框架添加颜色预览。我有确定颜色正常工作和GutterIcons是否正确应用的逻辑,但是我是Intellij SDK的新手,可以就如何检查PsiElement是否至少满足以下两个条件之一使用一些指导:
- 该元素是给定类型的类或派生类(例如Kotlin中的Bar类)
- 正在调用作为给定类型的类或派生类的变量(例如Kotlin中的Bar类)
这很像查找用法。
谢谢!
internal class FooColorProvider : ElementColorProvider {
override fun getColorFrom(element: PsiElement): Color? {
if (element !is LeafPsiElement && element.firstChild != null) {
return null
}
if (element.elementType.toString() != IDENTIFIER) {
return null
}
//todo@patches - figure out how to determine if this is a reference to the specified class or the specified class itself
return getColorForElement(element)
}
override fun setColorTo(element: PsiElement,color: Color) {
if (element !is LeafPsiElement && element.firstChild != null) {
return
}
NavigationGutterIconBuilder.create(ColorIcon(GUTTER_ICON_SIZE,color))
.setTarget(element)
}
/*
* Private functions
*/
private fun getColorForElement(element: PsiElement): Color? {
// Omitted for brevity
return null
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。