删除componentBody

This commit is contained in:
me
2024-05-26 15:37:32 +08:00
parent 16c1008c2c
commit 6fd71775c7
5 changed files with 17 additions and 34 deletions

View File

@@ -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
)
}

View File

@@ -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()

View File

@@ -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()
}

View File

@@ -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