删除componentBody
This commit is contained in:
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.completion.CompletionType
|
||||
import com.intellij.patterns.PlatformPatterns
|
||||
import me.zhouxi.slint.completion.provider.*
|
||||
import me.zhouxi.slint.lang.psi.SlintTypes
|
||||
import me.zhouxi.slint.lang.psi.SlintTypes.Component
|
||||
import me.zhouxi.slint.lang.psi.stubs.types.SlintFileElementType
|
||||
|
||||
class SlintCompletionContributor : CompletionContributor() {
|
||||
@@ -26,19 +27,19 @@ class SlintCompletionContributor : CompletionContributor() {
|
||||
//componentBody
|
||||
extend(
|
||||
CompletionType.BASIC,
|
||||
PlatformPatterns.psiElement().withAncestor(2, PlatformPatterns.psiElement(SlintTypes.ComponentBody)),
|
||||
PlatformPatterns.psiElement().withAncestor(2, PlatformPatterns.psiElement(Component)),
|
||||
ElementKeywordProvider
|
||||
)
|
||||
//componentBody
|
||||
extend(
|
||||
CompletionType.BASIC,
|
||||
PlatformPatterns.psiElement().withAncestor(2, PlatformPatterns.psiElement(SlintTypes.ComponentBody)),
|
||||
PlatformPatterns.psiElement().withAncestor(2,PlatformPatterns.psiElement(Component)),
|
||||
ComponentProvider
|
||||
)
|
||||
//propertyBinding
|
||||
extend(
|
||||
CompletionType.BASIC,
|
||||
PlatformPatterns.psiElement().withAncestor(2, PlatformPatterns.psiElement(SlintTypes.ComponentBody)),
|
||||
PlatformPatterns.psiElement().withAncestor(2, PlatformPatterns.psiElement(Component)),
|
||||
PropertyBindingProvider
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import me.zhouxi.slint.lang.psi.SlintProperty
|
||||
|
||||
|
||||
fun SlintComponent.inheritsProperties(): List<SlintProperty> {
|
||||
val properties = this.componentBody?.propertyList ?: emptyList()
|
||||
val properties = this.propertyList
|
||||
val inherit =
|
||||
this.inheritDeclaration?.referenceIdentifier?.reference?.resolve() as SlintComponent? ?: return properties
|
||||
return properties + inherit.inheritsProperties()
|
||||
|
||||
@@ -75,7 +75,7 @@ fun searchProperty(
|
||||
return searchProperty(component, predicate)
|
||||
}
|
||||
if (component is SlintComponent) {
|
||||
return searchElementInParents(component, predicate) { it.componentBody?.propertyList }
|
||||
return searchElementInParents(component, predicate) { it.propertyList }
|
||||
}
|
||||
return null
|
||||
}
|
||||
@@ -85,7 +85,7 @@ fun searchProperty(
|
||||
predicate: Predicate<SlintProperty>
|
||||
): SlintProperty? {
|
||||
val component = resolveComponent(subComponent?.referenceIdentifier) ?: return null
|
||||
return searchElementInParents(component, predicate) { it.componentBody?.propertyList }
|
||||
return searchElementInParents(component, predicate) { it.propertyList }
|
||||
}
|
||||
|
||||
fun searchCallback(
|
||||
@@ -96,7 +96,7 @@ fun searchCallback(
|
||||
return searchElementInParents(
|
||||
component as SlintComponent,
|
||||
predicate
|
||||
) { it.componentBody?.callbackList }
|
||||
) { it.callbackList }
|
||||
}
|
||||
|
||||
fun <T> searchElementInParents(
|
||||
@@ -115,18 +115,4 @@ fun <T> searchElementInParents(
|
||||
}
|
||||
val inheritComponent = resolveReferencedComponent(component.inheritDeclaration?.referenceIdentifier)
|
||||
return searchElementInParents(inheritComponent, predicate, function)
|
||||
}
|
||||
|
||||
fun SlintComponent.currentDeclaredElements(): List<SlintPsiNamedElement> {
|
||||
val properties = this.componentBody?.propertyList ?: emptyList()
|
||||
val callbacks = this.componentBody?.callbackList ?: emptyList()
|
||||
return properties + callbacks
|
||||
}
|
||||
|
||||
fun SlintComponent.inheritDeclaredElements(): List<SlintPsiNamedElement> {
|
||||
val properties = this.componentBody?.propertyList ?: emptyList()
|
||||
val callbacks = this.componentBody?.callbackList ?: emptyList()
|
||||
val inheritedComponent = resolveReferencedComponent(this.inheritDeclaration?.referenceIdentifier)
|
||||
?: return properties + callbacks
|
||||
return properties + callbacks + inheritedComponent.inheritDeclaredElements()
|
||||
}
|
||||
@@ -23,7 +23,6 @@ class SlintReferenceContributor : PsiReferenceContributor() {
|
||||
psiElement(Component),
|
||||
psiElement(InheritDeclaration),
|
||||
psiElement(ImportSpecifier)
|
||||
// psiElement(ExportIdentifier)
|
||||
)
|
||||
),
|
||||
ComponentReferenceProvider
|
||||
@@ -38,7 +37,8 @@ class SlintReferenceContributor : PsiReferenceContributor() {
|
||||
psiElement().withParent(
|
||||
or(
|
||||
psiElement(PropertyBinding),
|
||||
psiElement(ComponentBody)
|
||||
psiElement(Component),
|
||||
psiElement(SubComponent)
|
||||
)
|
||||
),
|
||||
PropertyReferenceProvider
|
||||
|
||||
Reference in New Issue
Block a user